package net.hn.hnms.sys.system.controller.feign;

import io.swagger.annotations.ApiOperation;
import net.hn.hnms.sys.system.api.domain.SysDictData;
import net.hn.hnms.sys.system.api.domain.vo.SysDictDataTypeVo;
import net.hn.hnms.sys.system.remote.RemoteDictServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;

import java.util.List;

/**
 * Author: PanSX
 * Date: 2022/7/13 10:44
 */
@ApiIgnore
@RestController
@RequestMapping("/remoteDict")
public class RemoteDictServiceController {
    @Autowired
    RemoteDictServiceImpl remoteDictService;
    /**
     * 根据字典类型和字典值获取字典标签
     *
     * @param dictType  字典类型
     * @param dictValue 字典值
     * @param separator 分隔符
     * @return 字典标签
     */
    @GetMapping("/getDictLabel")
//    @SaCheckLogin
   public String getDictLabel(@RequestParam("dictType") String dictType, @RequestParam("dictValue") String dictValue,
                        @RequestParam("separator") String separator){
        return remoteDictService.getDictLabel(dictType,dictType,separator);
    }

    /**
     * 根据字典类型和字典标签获取字典值
     *
     * @param dictType  字典类型
     * @param dictLabel 字典标签
     * @param separator 分隔符
     * @return 字典值
     */
    @GetMapping("/getDictValue")
//    @SaCheckLogin
   public String getDictValue(@RequestParam("dictType") String dictType, @RequestParam("dictLabel") String dictLabel,
                        @RequestParam("separator") String separator){
        return remoteDictService.getDictValue(dictType,dictLabel,separator);
    }

    /**
     * 根据字典类型获取字典数据列表
     *
     * @param dictType  字典类型
     * @return 字典列表
     */
    @GetMapping("/getDictList")
//    @SaCheckLogin
    public List<SysDictDataTypeVo> getDictList(@RequestParam("dictType") String dictType){
        return remoteDictService.getDictList(dictType);
    }


    /**
     * 查询字典详细数据
     */
    @ApiOperation("根据字典类型,字典查询字典数据信息")
    @GetMapping("/queryInfo")
    public SysDictData queryInfo(@RequestParam("dictType") String dictType,@RequestParam("dictLabel") String dictLabel){
        return remoteDictService.queryInfo(dictType,dictLabel);
    }


    /**
     * 查询字典详细数据
     */
    @ApiOperation("根据字典类型,字典查询字典数据信息")
    @GetMapping("/selectDictLabel")
    public String selectDictLabel(@RequestParam("dictType") String dictType,@RequestParam("dictValue") String dictValue){
        return remoteDictService.selectDictLabel(dictType,dictValue);
    }
}
